Zdravím. Jsme státem zelinářů a houbařů. Pořádného ajťáka tu nelze najít. Aspoň podle toho, že jsem se IT živil 20 let a něco o tom vím. Je to i mým koníčkem. Ale ne bastelení počítače. Pokud víš co je to OpenCV, Keras, PyTorch, Scipy, PyCuda, Pillow, Numpy, Dlib, Tensorflow bez toho aby jsi musel googlit pak vítej. Mám doma několik zařízení pro AI. Google Coral USB, Google dev board, Asus, Nvidia Jetson nano, atd. Hledám někoho s kým si můžu vyměňovat zkušenosti. V Česku abych ho pozvedl z doby kamenné aspoň do doby bronzové.
Na youtube jsem našel návody od pakistánců, indů, američanů ale od čecha ani jeden. Nvidia Jetson Nano je na světě od roku 2019 ale v česku když návod tak na arduino. Jsme holt státem zelinářů a houbařů. Nebo je tady snad někdo kdo ví o čem píšu, má to doma a například má vytuněný JetBot s mnoha funkcemi?
Nebo fakt nechápete o čem píšu a myslíte si, že je to o vesmíru?
Odpovědět0 0
Pěkný článek, děkuji.
Odpovědět1 0
Díky za chytrý článek. V tomto oboru je toho asi hodně, mě nejvíc zajímá chápat základní princip sítě. Úplně nerozumím co řeší příklad s převodovkou, zkusím jiný. Třeba n. síť pro rozpoznání znaku textu z obrázku. Výsledek sítě v jednoduchém příkladu by mohl mít na výstupu celou abecedu jako výstupní vrstvu a u každého písmene číslo jako pravděpodobnost že na obrázku je ono písmeno. Trénink písmene A různých fontů, nebo různých nekvalitních fotek, kde A vypadá vždy trochu jinak. Hádám že pro první pokus tréninku se váhy neuronů nastaví náhodně a výsledek je špatný, jak se ale nastaví váhy pro druhý pokus? a změní se pro druhý pokus všechny váhy, nebo jedna? Jak se postupuje dál? Každý obrázek by byl člověkem označený o jaký jde znak.
Předpokládám u každého obrázku mnoho pokusů učení až síť znak správně vyhodnotí. Jako vstupy by byli stupně šedé každého pixelu obrázku.
Odpovědět0 0
"Úplně nerozumím co řeší příklad s převodovkou, zkusím jiný."
Máte pravdu, že jsem to tam napsal trochu nešikovně. Mírně jsem to tam doplnil. Jde o to, že vezmete ona vstupní data (např. otáčky, aktuální stupeň, požadovaný výkon), ke kterým máte výstup (třeba podřazení). Upravujete váhy tak dlouho, dokud se síť nenaučí, že má v dané kombinaci podřadit. V praxi tam pochopitelně bude více vstupů, ten program musí znát např. průběh točivého momentu pro jednotlivé otáčky (např. u nafty nemá smysl podřazovat ze 3000 na 4000 otáček, protože tam má v podstatě velmi podobný výkon, zatímco atmosférický benzín ho tam bude mít o 35 % vyšší, a tam to smysl má), musí znát také počet převodových stupňů, převodové poměry, max. otáčky a další detaily. Nyní do toho nasypete miliardy jízdních situací nejrůznějších aut v nejrůznějších kombinacích a trénujete to tak dlouho, než to začne dávat smysluplná rozhodnutí.
"změní se pro druhý pokus všechny váhy, nebo jedna? Jak se postupuje dál?"
U obrazů je to komplikovanější a výrazně nad rámec takového článku. Tam už se používají konvoluční neuronové sítě a není to tak jednoduché jako v předchozím příkladě (např. na jednoduché neuronce jsme na univerzitě vytvořili docela rozumně jezdící AI do závodní hry, a to jen na pár desítkách jízdních situací). Ale v zásadě to s těmi písmeny může fungovat tak, jak píšete. Hodíte tomu miliardy různě napsaných a kvalitních písmen "A", a síť si musí najít sama způsob, jak poznat společné znaky v obraze pro písmena "A",
Nicméně co se týče těch vah, tak tam to zpravidla funguje tak, že si spočítáte celkovou chybu sítě (součet všech chyb vyhodnocení a o kolik), na základě toho spočítáte změny, které se mají zpětně započítat (o kolik se mají upravit váhy). Ty upravíte a zkoušíte to znovu. Znovu spočtete součet chyb, nové změny, upravíte váhy, znovu. Tohle mohou být třeba desítky tisíc pokusů. Po určité době se snižování tohoto součtu chyb v podstatě zastaví, ale obvykle není nulový. Vždy tam je nějaká chyba (to nemusí nutně znamenat, že se to síť nenaučila a bude dělat velké chyby, ale také to, že jste mohl mít v trénovací množině data, která si svým výsledkem více či méně protiřečila - dokážu si představit např. problém s psanými "a" a "d", která mohou být člověkem napsaná v podstatě stejně). Tady je dobré zastavit, protože budete-li pokračovat dál, síť se může přetrénovat a dojít k tomu, že najde způsob, jak se naučit přesně rozpoznávat data z trénovací množiny, ale žádná jiná.
Odpovědět0 0
Já vím, že obecně je řešení obrazu složitější, u textu třeba hledání řádků a znaků, v jiném obraze s hlubokou n. sítí v prvních vrstvách hledání základních tvarů a hloub složitějších tvarů. Mě jde o nějaký jednoduchý příklad jako ukázka principu. Třeba rozpoznání znaků + a - které jsou přesně umístěné vždy v obrázku třeba 5 x 5 px. Síť má třeba dvě vrstvy. Takový zjednodušení, ale srozumitelnější situace než u převodovky.
Ok, tak jsem teď pochopil asi že váhy se nastaví náhodně 2x, díky tomu je změna v kvalitě výsledku a můžou se řešit odchylky a pro třetí pokus už váhy vypočítat a tak dál, ale vidím tam jen výslednou odchylku a tak nevím které váhy se měnili správným směrem a které špatným, jako kterou snížit a kterou zvýšit, nebo nerozumím kde jsou vidět odchylky jednotlivých neuronů.
Jestli jde o seriál článků a nějaký se základním principům bude věnovat, tak to samozřejmě nemusíme řešit předem.
Odpovědět0 0